Liskov の置換原則 (LSP)
Liskov substitution principle
事前條件 (preconditions) を、派生型で強めることはできない。派生型では同じか弱められる。
函數の引數は事前條件なので反變 F[A-,B+]
事後條件 (postconditions) を、派生型で弱めることはできない。派生型では同じか強められる。
函數の返り値は事後條件なので共變 F[A-,B+]
不變條件 (invaritants) は、派生型でも保護されねばならない。派生型でそのまま維持される。
基底型の例外 (exception) から派生した例外を除いては、派生型で獨自の例外を投げてはならない。